[% setvar title Better english names for -X %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='TITLE'></a><h1>TITLE</h1>
<p>Better english names for -X</p>
<a name='VERSION'></a><h1>VERSION</h1>
<pre>  Maintainer: Adam Turoff &lt;<a href='mailto:ziggy@panix.com'>ziggy@panix.com</a>&gt;
  Date: 24 Sep 2000
  Last Modified: 30 Sep 2000
  Mailing List: <a href='mailto:perl6-language@perl.org'>perl6-language@perl.org</a>
  Number: 290
  Version: 3
  Status: Frozen</pre>
<a name='ABSTRACT'></a><h1>ABSTRACT</h1>
<p>Many programmers who have not used Perl's -X (or sh's -X) file tests
find them to be bizarre, arcane and confusing.</p>
<p>They deserve better 'use english;' names.</p>
<a name='NOTES'></a><h1>NOTES</h1>
<p>The first version of this RFC proposed removing -X entirely, since
it was a throwback to Perl's roots in sh.  That proposal was quite
vigorously shot down.  The discussion centered around creating
good descriptive names around the -X tests.</p>
<p>While discussing -X, the idea came about to stack multiple tests
into a single tests, e.g. mutate -r &amp;&amp; -w &amp;&amp; -x into -rwx $file
(or something).  See RFC 320 for details.</p>
<a name='DESCRIPTION'></a><h1>DESCRIPTION</h1>
<p>Tom Christiansen proposed this in his perl6storm message:</p>
<pre>	=item perl6storm #0101

	Just like the &quot;use english&quot; pragma (the modern not-yet-written
	version of &quot;use English&quot; module), make something for legible
	fileops.

		is_readable(file) is really -r(file)

	note that these are hard to write now due to -s(FH)/2 style
	parsing bugs and prototype issues on handles vs paths.</pre>
<p>Here is a list of possible 'use english;' names for -X:</p>
<pre>    -r  freadable()
    -w  fwriteable()
    -x  fexecable()
    -o  fowned()

    -R  Freadable()
    -W  Fwriteable()
    -X  Fexecable()
    -O  Fowned()

    -e  fexists()
    -z  fzero()
    -s  fsize()

    -f  ffile()
    -d  fdir()
    -l  flink()
    -p  fpipe()
    -S  fsocket()
    -b  fblock()
    -c  fchar()
    -t  ftty()

    -u  fsetuid()
    -g  fsetgid()
    -k  fsticky()

    -T  ftext()
    -B  fbinary()

    -M  fage()
    -A  faccessed()
    -C  fchanged()</pre>
<a name='MIGRATION ISSUES'></a><h1>MIGRATION ISSUES</h1>
<p>None.  New symbolic names for -X are being added.</p>
<a name='IMPLEMENTATION'></a><h1>IMPLEMENTATION</h1>
<p>Add appropriate hooks into 'use english;', and possibly export
them as 'use english &quot;filetests&quot;;'</p>
<a name='REFERENCES'></a><h1>REFERENCES</h1>
<p>RFC 320:</p>
<p>perl6storm</p>
</div>
